<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="手写PromiseV2.js"></script>
</head>
<body>
<script>
    const p = new PromiseV2((resolve, reject) => {
        // 同步任务 首先进行
        console.log('inner 同步任务')
        setTimeout(()=>{
            console.log('inner 宏任务')
            resolve('inner solve 宏任务包围的')
            console.log('inner 在solve后面的宏任务');
        }, 2000)
        // resolve('resolve 微任务')
        // reject('reject 微任务')
    }).then(data => {
        console.log(data)
        // 微任务 在同步任务后面执行
        // console.log(data)
        // data('hahhahahhah')
    })
    // 同步任务
    console.log('outside')

    /*
    * 此时输出的顺序应该是
    * inner 同步任务
    * outside 同步任务
    * ===== 过2s
    * inner 宏任务
    * inner 在solve后面的宏任务
    *inner solve 宏任务包围的
    * */


    const nP = new PromiseV2()
</script>
</body>
</html>
